[INFO] cloning repository https://github.com/mister-teddy/ptrace_playground
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mister-teddy/ptrace_playground" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmister-teddy%2Fptrace_playground", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmister-teddy%2Fptrace_playground'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ec945861e3f2a49f81b376f875d9a8334ed0f9f3
[INFO] fixing mister-teddy/ptrace_playground against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmister-teddy%2Fptrace_playground" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/mister-teddy/ptrace_playground
[INFO] finished tweaking git repo https://github.com/mister-teddy/ptrace_playground
[INFO] tweaked toml for git repo https://github.com/mister-teddy/ptrace_playground written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/mister-teddy/ptrace_playground on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/mister-teddy/ptrace_playground already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded nix v0.31.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8dc2e97cf16b95dcaf587e3f508905d49f76ce5ed1936c61f8f6f3b7008f3b56
[INFO] running `Command { std: "docker" "start" "8dc2e97cf16b95dcaf587e3f508905d49f76ce5ed1936c61f8f6f3b7008f3b56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8dc2e97cf16b95dcaf587e3f508905d49f76ce5ed1936c61f8f6f3b7008f3b56" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8dc2e97cf16b95dcaf587e3f508905d49f76ce5ed1936c61f8f6f3b7008f3b56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8dc2e97cf16b95dcaf587e3f508905d49f76ce5ed1936c61f8f6f3b7008f3b56" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.180
[INFO] [stderr]    Compiling ptrace_playground v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking bitflags v2.10.0
[INFO] [stderr]     Checking cfg-if v1.0.4
[INFO] [stderr]    Compiling nix v0.31.1
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/rootless.rs:955:13
[INFO] [stdout]      |
[INFO] [stdout]  954 |         nix::libc::ptrace(
[INFO] [stdout]      |         ----------------- arguments to this function are incorrect
[INFO] [stdout]  955 |             PTRACE_GET_SYSCALL_INFO,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `i32`
[INFO] [stdout]      |
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/linux_like/linux/gnu/mod.rs:1079:12
[INFO] [stdout]      |
[INFO] [stdout] 1079 |     pub fn ptrace(request: c_uint, ...) -> c_long;
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] help: you can convert an `i32` to a `u32` and panic if the converted value doesn't fit
[INFO] [stdout]      |
[INFO] [stdout]  955 |             PTRACE_GET_SYSCALL_INFO.try_into().unwrap(),
[INFO] [stdout]      |                                    ++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/rootless.rs:955:13
[INFO] [stdout]      |
[INFO] [stdout]  954 |         nix::libc::ptrace(
[INFO] [stdout]      |         ----------------- arguments to this function are incorrect
[INFO] [stdout]  955 |             PTRACE_GET_SYSCALL_INFO,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `i32`
[INFO] [stdout]      |
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/linux_like/linux/gnu/mod.rs:1079:12
[INFO] [stdout]      |
[INFO] [stdout] 1079 |     pub fn ptrace(request: c_uint, ...) -> c_long;
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] help: you can convert an `i32` to a `u32` and panic if the converted value doesn't fit
[INFO] [stdout]      |
[INFO] [stdout]  955 |             PTRACE_GET_SYSCALL_INFO.try_into().unwrap(),
[INFO] [stdout]      |                                    ++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1229:19
[INFO] [stdout]      |
[INFO] [stdout] 1229 |       let reserve = nix::libc::mmap(
[INFO] [stdout]      |  ___________________^
[INFO] [stdout] 1230 | |         std::ptr::null_mut(),
[INFO] [stdout] 1231 | |         span as usize,
[INFO] [stdout] 1232 | |         nix::libc::PROT_NONE,
[INFO] [stdout] ...    |
[INFO] [stdout] 1235 | |         0,
[INFO] [stdout] 1236 | |     );
[INFO] [stdout]      | |_____^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]     --> src/rootless.rs:1217:1
[INFO] [stdout]      |
[INFO] [stdout] 1217 | unsafe fn map_elf(path: &Path, img: &ElfImage) -> Option<(u64, u64)> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]      = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::open` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1243:14
[INFO] [stdout]      |
[INFO] [stdout] 1243 |     let fd = nix::libc::open(cpath.as_ptr(), nix::libc::O_RDONLY);
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1254:26
[INFO] [stdout]      |
[INFO] [stdout] 1254 |               let mapped = nix::libc::mmap(
[INFO] [stdout]      |  __________________________^
[INFO] [stdout] 1255 | |                 map_addr,
[INFO] [stdout] 1256 | |                 file_len as usize,
[INFO] [stdout] 1257 | |                 prot_from_flags(seg.flags),
[INFO] [stdout] ...    |
[INFO] [stdout] 1260 | |                 off_page as nix::libc::off_t,
[INFO] [stdout] 1261 | |             );
[INFO] [stdout]      | |_____________^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1263:17
[INFO] [stdout]      |
[INFO] [stdout] 1263 |                 nix::libc::close(fd);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1271:26
[INFO] [stdout]      |
[INFO] [stdout] 1271 |               let mapped = nix::libc::mmap(
[INFO] [stdout]      |  __________________________^
[INFO] [stdout] 1272 | |                 anon_addr,
[INFO] [stdout] 1273 | |                 anon_len as usize,
[INFO] [stdout] 1274 | |                 prot_from_flags(seg.flags),
[INFO] [stdout] ...    |
[INFO] [stdout] 1277 | |                 0,
[INFO] [stdout] 1278 | |             );
[INFO] [stdout]      | |_____________^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1280:17
[INFO] [stdout]      |
[INFO] [stdout] 1280 |                 nix::libc::close(fd);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1285:5
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     nix::libc::close(fd);
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `rootless::map_elf` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1332:40
[INFO] [stdout]      |
[INFO] [stdout] 1332 |     let (target_base, _target_entry) = map_elf(target_path, &target_img)?;
[INFO] [stdout]      |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]     --> src/rootless.rs:1326:1
[INFO] [stdout]      |
[INFO] [stdout] 1326 | unsafe fn run_loader_shim(target: &[u8], interp: &[u8], target_args: &[OsString]) -> Option<()> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `rootless::map_elf` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1333:39
[INFO] [stdout]      |
[INFO] [stdout] 1333 |     let (interp_base, interp_entry) = map_elf(interp_path, &interp_img)?;
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1336:17
[INFO] [stdout]      |
[INFO] [stdout] 1336 |       let stack = nix::libc::mmap(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1337 | |         std::ptr::null_mut(),
[INFO] [stdout] 1338 | |         stack_len,
[INFO] [stdout] 1339 | |         nix::libc::PROT_READ | nix::libc::PROT_WRITE,
[INFO] [stdout] ...    |
[INFO] [stdout] 1342 | |         0,
[INFO] [stdout] 1343 | |     );
[INFO] [stdout]      | |_____^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1372:9
[INFO] [stdout]      |
[INFO] [stdout] 1372 |         std::ptr::copy_nonoverlapping(raw.as_ptr(), sp as *mut u8, raw.len());
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1381:9
[INFO] [stdout]      |
[INFO] [stdout] 1381 |         std::ptr::copy_nonoverlapping(raw.as_ptr(), sp as *mut u8, raw.len());
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1390:9
[INFO] [stdout]      |
[INFO] [stdout] 1390 |         std::ptr::copy_nonoverlapping(bs.as_ptr(), *sp_ref as *mut u8, 8);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1409:17
[INFO] [stdout]      |
[INFO] [stdout] 1409 |                 std::ptr::copy_nonoverlapping(s.as_ptr(), sp as *mut u8, s.len());
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_bytes` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1423:9
[INFO] [stdout]      |
[INFO] [stdout] 1423 |         std::ptr::write_bytes(rand_ptr as *mut u8, 0, rand_len);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1229:19
[INFO] [stdout]      |
[INFO] [stdout] 1229 |       let reserve = nix::libc::mmap(
[INFO] [stdout]      |  ___________________^
[INFO] [stdout] 1230 | |         std::ptr::null_mut(),
[INFO] [stdout] 1231 | |         span as usize,
[INFO] [stdout] 1232 | |         nix::libc::PROT_NONE,
[INFO] [stdout] ...    |
[INFO] [stdout] 1235 | |         0,
[INFO] [stdout] 1236 | |     );
[INFO] [stdout]      | |_____^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]     --> src/rootless.rs:1217:1
[INFO] [stdout]      |
[INFO] [stdout] 1217 | unsafe fn map_elf(path: &Path, img: &ElfImage) -> Option<(u64, u64)> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]      = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::open` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1243:14
[INFO] [stdout]      |
[INFO] [stdout] 1243 |     let fd = nix::libc::open(cpath.as_ptr(), nix::libc::O_RDONLY);
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1254:26
[INFO] [stdout]      |
[INFO] [stdout] 1254 |               let mapped = nix::libc::mmap(
[INFO] [stdout]      |  __________________________^
[INFO] [stdout] 1255 | |                 map_addr,
[INFO] [stdout] 1256 | |                 file_len as usize,
[INFO] [stdout] 1257 | |                 prot_from_flags(seg.flags),
[INFO] [stdout] ...    |
[INFO] [stdout] 1260 | |                 off_page as nix::libc::off_t,
[INFO] [stdout] 1261 | |             );
[INFO] [stdout]      | |_____________^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1263:17
[INFO] [stdout]      |
[INFO] [stdout] 1263 |                 nix::libc::close(fd);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1271:26
[INFO] [stdout]      |
[INFO] [stdout] 1271 |               let mapped = nix::libc::mmap(
[INFO] [stdout]      |  __________________________^
[INFO] [stdout] 1272 | |                 anon_addr,
[INFO] [stdout] 1273 | |                 anon_len as usize,
[INFO] [stdout] 1274 | |                 prot_from_flags(seg.flags),
[INFO] [stdout] ...    |
[INFO] [stdout] 1277 | |                 0,
[INFO] [stdout] 1278 | |             );
[INFO] [stdout]      | |_____________^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1280:17
[INFO] [stdout]      |
[INFO] [stdout] 1280 |                 nix::libc::close(fd);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1285:5
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     nix::libc::close(fd);
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interp_entry`
[INFO] [stdout]     --> src/rootless.rs:1333:23
[INFO] [stdout]      |
[INFO] [stdout] 1333 |     let (interp_base, interp_entry) = map_elf(interp_path, &interp_img)?;
[INFO] [stdout]      |                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interp_entry`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `rootless::map_elf` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1332:40
[INFO] [stdout]      |
[INFO] [stdout] 1332 |     let (target_base, _target_entry) = map_elf(target_path, &target_img)?;
[INFO] [stdout]      |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]     --> src/rootless.rs:1326:1
[INFO] [stdout]      |
[INFO] [stdout] 1326 | unsafe fn run_loader_shim(target: &[u8], interp: &[u8], target_args: &[OsString]) -> Option<()> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `rootless::map_elf` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1333:39
[INFO] [stdout]      |
[INFO] [stdout] 1333 |     let (interp_base, interp_entry) = map_elf(interp_path, &interp_img)?;
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1336:17
[INFO] [stdout]      |
[INFO] [stdout] 1336 |       let stack = nix::libc::mmap(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1337 | |         std::ptr::null_mut(),
[INFO] [stdout] 1338 | |         stack_len,
[INFO] [stdout] 1339 | |         nix::libc::PROT_READ | nix::libc::PROT_WRITE,
[INFO] [stdout] ...    |
[INFO] [stdout] 1342 | |         0,
[INFO] [stdout] 1343 | |     );
[INFO] [stdout]      | |_____^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1372:9
[INFO] [stdout]      |
[INFO] [stdout] 1372 |         std::ptr::copy_nonoverlapping(raw.as_ptr(), sp as *mut u8, raw.len());
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1381:9
[INFO] [stdout]      |
[INFO] [stdout] 1381 |         std::ptr::copy_nonoverlapping(raw.as_ptr(), sp as *mut u8, raw.len());
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1390:9
[INFO] [stdout]      |
[INFO] [stdout] 1390 |         std::ptr::copy_nonoverlapping(bs.as_ptr(), *sp_ref as *mut u8, 8);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1409:17
[INFO] [stdout]      |
[INFO] [stdout] 1409 |                 std::ptr::copy_nonoverlapping(s.as_ptr(), sp as *mut u8, s.len());
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_bytes` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1423:9
[INFO] [stdout]      |
[INFO] [stdout] 1423 |         std::ptr::write_bytes(rand_ptr as *mut u8, 0, rand_len);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interp_entry`
[INFO] [stdout]     --> src/rootless.rs:1333:23
[INFO] [stdout]      |
[INFO] [stdout] 1333 |     let (interp_base, interp_entry) = map_elf(interp_path, &interp_img)?;
[INFO] [stdout]      |                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interp_entry`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0133, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0133, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ptrace_playground` (lib test) due to 1 previous error; 16 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `ptrace_playground` (lib) due to 1 previous error; 16 warnings emitted
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]     --> src/rootless.rs:955:13
[INFO] [stdout]      |
[INFO] [stdout]  954 |         nix::libc::ptrace(
[INFO] [stdout]      |         ----------------- arguments to this function are incorrect
[INFO] [stdout]  955 |             PTRACE_GET_SYSCALL_INFO,
[INFO] [stdout]      |             ^^^^^^^^^^^^^^^^^^^^^^^ expected `u32`, found `i32`
[INFO] [stdout]      |
[INFO] [stdout] note: function defined here
[INFO] [stdout]     --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/libc-0.2.180/src/unix/linux_like/linux/gnu/mod.rs:1079:12
[INFO] [stdout]      |
[INFO] [stdout] 1079 |     pub fn ptrace(request: c_uint, ...) -> c_long;
[INFO] [stdout]      |            ^^^^^^
[INFO] [stdout] help: you can convert an `i32` to a `u32` and panic if the converted value doesn't fit
[INFO] [stdout]      |
[INFO] [stdout]  955 |             PTRACE_GET_SYSCALL_INFO.try_into().unwrap(),
[INFO] [stdout]      |                                    ++++++++++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1229:19
[INFO] [stdout]      |
[INFO] [stdout] 1229 |       let reserve = nix::libc::mmap(
[INFO] [stdout]      |  ___________________^
[INFO] [stdout] 1230 | |         std::ptr::null_mut(),
[INFO] [stdout] 1231 | |         span as usize,
[INFO] [stdout] 1232 | |         nix::libc::PROT_NONE,
[INFO] [stdout] ...    |
[INFO] [stdout] 1235 | |         0,
[INFO] [stdout] 1236 | |     );
[INFO] [stdout]      | |_____^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]     --> src/rootless.rs:1217:1
[INFO] [stdout]      |
[INFO] [stdout] 1217 | unsafe fn map_elf(path: &Path, img: &ElfImage) -> Option<(u64, u64)> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]      = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::open` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1243:14
[INFO] [stdout]      |
[INFO] [stdout] 1243 |     let fd = nix::libc::open(cpath.as_ptr(), nix::libc::O_RDONLY);
[INFO] [stdout]      |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1254:26
[INFO] [stdout]      |
[INFO] [stdout] 1254 |               let mapped = nix::libc::mmap(
[INFO] [stdout]      |  __________________________^
[INFO] [stdout] 1255 | |                 map_addr,
[INFO] [stdout] 1256 | |                 file_len as usize,
[INFO] [stdout] 1257 | |                 prot_from_flags(seg.flags),
[INFO] [stdout] ...    |
[INFO] [stdout] 1260 | |                 off_page as nix::libc::off_t,
[INFO] [stdout] 1261 | |             );
[INFO] [stdout]      | |_____________^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1263:17
[INFO] [stdout]      |
[INFO] [stdout] 1263 |                 nix::libc::close(fd);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1271:26
[INFO] [stdout]      |
[INFO] [stdout] 1271 |               let mapped = nix::libc::mmap(
[INFO] [stdout]      |  __________________________^
[INFO] [stdout] 1272 | |                 anon_addr,
[INFO] [stdout] 1273 | |                 anon_len as usize,
[INFO] [stdout] 1274 | |                 prot_from_flags(seg.flags),
[INFO] [stdout] ...    |
[INFO] [stdout] 1277 | |                 0,
[INFO] [stdout] 1278 | |             );
[INFO] [stdout]      | |_____________^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1280:17
[INFO] [stdout]      |
[INFO] [stdout] 1280 |                 nix::libc::close(fd);
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::close` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1285:5
[INFO] [stdout]      |
[INFO] [stdout] 1285 |     nix::libc::close(fd);
[INFO] [stdout]      |     ^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `rootless::map_elf` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1332:40
[INFO] [stdout]      |
[INFO] [stdout] 1332 |     let (target_base, _target_entry) = map_elf(target_path, &target_img)?;
[INFO] [stdout]      |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]     --> src/rootless.rs:1326:1
[INFO] [stdout]      |
[INFO] [stdout] 1326 | unsafe fn run_loader_shim(target: &[u8], interp: &[u8], target_args: &[OsString]) -> Option<()> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `rootless::map_elf` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1333:39
[INFO] [stdout]      |
[INFO] [stdout] 1333 |     let (interp_base, interp_entry) = map_elf(interp_path, &interp_img)?;
[INFO] [stdout]      |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `nix::libc::mmap` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1336:17
[INFO] [stdout]      |
[INFO] [stdout] 1336 |       let stack = nix::libc::mmap(
[INFO] [stdout]      |  _________________^
[INFO] [stdout] 1337 | |         std::ptr::null_mut(),
[INFO] [stdout] 1338 | |         stack_len,
[INFO] [stdout] 1339 | |         nix::libc::PROT_READ | nix::libc::PROT_WRITE,
[INFO] [stdout] ...    |
[INFO] [stdout] 1342 | |         0,
[INFO] [stdout] 1343 | |     );
[INFO] [stdout]      | |_____^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1372:9
[INFO] [stdout]      |
[INFO] [stdout] 1372 |         std::ptr::copy_nonoverlapping(raw.as_ptr(), sp as *mut u8, raw.len());
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1381:9
[INFO] [stdout]      |
[INFO] [stdout] 1381 |         std::ptr::copy_nonoverlapping(raw.as_ptr(), sp as *mut u8, raw.len());
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1390:9
[INFO] [stdout]      |
[INFO] [stdout] 1390 |         std::ptr::copy_nonoverlapping(bs.as_ptr(), *sp_ref as *mut u8, 8);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::copy_nonoverlapping` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1409:17
[INFO] [stdout]      |
[INFO] [stdout] 1409 |                 std::ptr::copy_nonoverlapping(s.as_ptr(), sp as *mut u8, s.len());
[INFO] [stdout]      |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::write_bytes` is unsafe and requires unsafe block
[INFO] [stdout]     --> src/rootless.rs:1423:9
[INFO] [stdout]      |
[INFO] [stdout] 1423 |         std::ptr::write_bytes(rand_ptr as *mut u8, 0, rand_len);
[INFO] [stdout]      |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
[INFO] [stdout]      |
[INFO] [stdout]      = note: consult the function's documentation for information on how to avoid undefined behavior
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `interp_entry`
[INFO] [stdout]     --> src/rootless.rs:1333:23
[INFO] [stdout]      |
[INFO] [stdout] 1333 |     let (interp_base, interp_entry) = map_elf(interp_path, &interp_img)?;
[INFO] [stdout]      |                       ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_interp_entry`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0133, E0308.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ptrace_playground` (lib) due to 1 previous error; 16 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "8dc2e97cf16b95dcaf587e3f508905d49f76ce5ed1936c61f8f6f3b7008f3b56", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8dc2e97cf16b95dcaf587e3f508905d49f76ce5ed1936c61f8f6f3b7008f3b56", kill_on_drop: false }`
[INFO] [stdout] 8dc2e97cf16b95dcaf587e3f508905d49f76ce5ed1936c61f8f6f3b7008f3b56
